@import "./reset.css";
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap');
@import "./buttons.css";
@import "./nav-icon.css";
@import "./mobile-nav.css";


body {
  font-family: "Poppins", sans-serif;
  font-style: normal;
}

.container {
  max-width: 1440px;
  padding: 0 32px;
  margin: 0 auto;
}

/* Header */
.header {
  padding-top: 31px;
  padding-bottom: 100px;

  /* Можно высоту сделать 100vh (на весь экран) 
  height: 100vh;
  или
  Можно дать высоту по контенту
  */
  height: 800px;

  /* Прописываем чтобы весь текст по умолчанию был белым */
  color: #fff;
  /* можно прописать черный фон, для того чтобы если картинка не загрузится фон будет черный и будет виден белый текст */
  background-color: black;
  background-image: url(./../img/header/bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;

  border-radius: 0 0 54px 54px;
}

.header a {
  color: #fff;
}

.container--header {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

/* Nav */
.nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  -moz-column-gap: 30px;
  column-gap: 30px;
}

.logo {
  /* Задаем, чтобы при уменьшении размера экрана логотип не уменьшался */
  flex-shrink: 0;
}

.nav-list {
  display: flex;
  align-items: center;
  -moz-column-gap: 54px;
  column-gap: 54px;
  font-weight: 300;
  font-size: 14px;
  text-transform: capitalize;
}

.nav-list__link {
  opacity: 0.7;
}

.nav-list__link--active {
  opacity: 1;
}

/* User */
.user {
  display: flex;
  align-items: center;
  -moz-column-gap: 8px;
  column-gap: 8px;
}

.user__content {
  display: flex;
  flex-direction: column;
}

.user__greeting {
  align-self: end;
  font-size: 14px;
  opacity: 0.5;
}

.user__name {
  font-weight: 600;
  font-size: 14px;
}

.user__avatar {
  position: relative;
}

.user__avatar::after {
  position: absolute;
  top: 0;
  right: 0;
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  background-color: #ff0000;
  border-radius: 50%;
}

.user__img {
  border-radius: 50%;
}

.nav__icon {
  display: none;
}

/* Header content */
.header__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 32px;
  text-align: center;
}

.header__title {
  font-weight: 600;
  /* font-size: 48px; */
  /* Чтобы не использовать медиозапрос, который при размере экрана 1139px изменит размер шрифта с 48px до 26px, можно использовать  функцию clamp(), которая в зависимости от изменения ширины экрана с 1440px до 320px будет плавно изменять размер шрифта с 48px до 26px */
  font-size: clamp(2rem, 1.714rem + 1.43vw, 3rem);
  line-height: 129%;
}

/* Form */
.form {
  display: flex;
  align-items: center;
  align-self: center;
  width: 1140px;
  height: 88px;
  padding: 8px;
  border-radius: 12px;
  /* margin: 0 auto; */
  color: #000;
  background-color: #fff;
}

.form__input-wrapper {
  display: flex;
  flex-direction: column;
  background-repeat: no-repeat;
  background-position: 16px 24px;
  padding: 15px 20px 16px 56px;
}

.form__input--location {
  width: 300px;
  background-image: url(./../img/header/map.svg);
}

.form__input--activity {
  width: 255px;
  background-image: url(./../img/header/bicycle.svg);
}

.form__input--date {
  width: 255px;
  background-image: url(./../img/header/calendar.svg);
}

input[type="date" i] {
  cursor: pointer;
}

.form__input--guests {
  width: 255px;
  background-image: url(./../img/header/guests.svg);
}

.form__label {
  font-size: 14px;
  font-weight: 300;
  line-height: 16px;
  color: #5b5b5b;
}

.form__input {
  font-weight: 500;
  line-height: 24px;
  color: #161414;
}

.form__input::-webkit-input-placeholder {
  color: #161414;
}

.form__input::-moz-placeholder {
  color: #161414;
}

.form__input:-ms-input-placeholder {
  color: #161414;
}

.form__input::-ms-input-placeholder {
  color: #161414;
}

.form__input::placeholder {
  color: #161414;
}


main {
  padding: 120px 0;
  display: grid;
  gap: 120px;
}

/* POPULAR */
.popular--container {
  padding: 0 31px;
}

.popular__title {
  font-weight: 600;
  font-size: 32px;
  color: #161414;
  margin-bottom: 64px;
}

.popular__cards {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 32px;
}

.card {
  position: relative;
}

.card__link {
  /* Растягиваем ссылку на всю карточку */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.popular__card img {
  border-radius: 12px;
  width: 100%;
  margin-bottom: 8px;
  object-fit: cover;
}

.popular__card-title {
  font-weight: 500;
  color: #161414;
}

.card-location {
  /* Прописываем, чтобы ссылка действовала отдельно от ссылки карточки */
  position: relative;
  z-index: 1;

  font-size: 13px;
  color: #979797;
}

.card-location:hover {
  color: #7B61FF;
}

/* Hotels */
.header-section {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 64px;
}

.header-section__title {
  font-weight: 600;
  font-size: 32px;
  color: #161414
}

.hotels__cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}

.card__img {
  border-radius: 12px;
  width: 100%;
  margin-bottom: 10px;
  object-fit: cover;
}

.card__title {
  font-weight: 500;
  font-size: clamp(0.875rem, 0.402rem + 0.66vw, 1rem);
  color: #161414;
}

.hotels__content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
}

.hotels__card-location {
  padding-left: 20px;
  font-size: 13px;
}

.hotels__card-location::before {
  position: absolute;
  content: "";
  width: 16px;
  height: 16px;
  background-image: url(../img/hotels/map.svg);
  background-repeat: no-repeat;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.stars-rating {
  width: 88px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* TIPS */
.tips__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}

/* 
Flex не подойдет, т.к. при уменьшении ширины экрана, картинка не уменьшает ширину
.tips__card {
  display: flex;
  gap: 32px;
} */

.tips__card {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}

.tips__card-img {
  border-radius: 24px;
  /* Прописываем, чтобы картинка, при уменьшении ширины экрана растягивалась в ширину и высоту на весь родитель */
  width: 100%;
  height: 100%;
  /* Прописываем, чтобы картинка сохранила пропорции при растягивании в высоту */
  object-fit: cover;
}

.tips__card-description {
  display: flex;
  flex-direction: column;
  row-gap: 16px;
}

.tips__card-title {
  font-weight: 600;
  font-size: 20px;
  color: #161414;
  margin-bottom: 16px;
}

.tips__card-text {
  font-size: 16px;
  line-height: 200%;
  color: #5b5b5b;
}

.tips__card-items {
  display: flex;
  align-items: center;
  margin-top: auto;
  column-gap: 24px;
}

.tips__card-item-link {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #878787;
}

.tips__card-item-link:hover {
  color: #7B61FF;
}

/* ACTIVITIES */
.activities__cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}

.card__img--activities {
  margin-bottom: 16px;
}

/* ABOUT */
.container--about {
  max-width: 1208px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}

.about__description {
  max-width: 556px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 32px;
}

.about__title {
  font-weight: 600;
  font-size: 32px;
  color: #161414
}

.about__text {
  line-height: 200%;
  color: #5b5b5b;
}

.about .button-more {
  width: 133px;
}

.about__img {
  height: 100%;
  border-radius: 24px;
  object-fit: cover;
}

/* FOOTER */
.footer {
  padding: 120px 0;
  background-color: #f9f9f9;
}

.footer__row {
  display: flex;
  flex-wrap: wrap;
  /* justify-content: space-between; */
  gap: 64px;
  align-items: flex-start;
}

.footer__copyright {
  max-width: 354.5px;
}

.footer__copyright .logo__img {
  margin-bottom: 16px;
}

.footer__features {
  margin-bottom: 32px;
  font-size: 13px;
  color: #5b5b5b;
}

.socials {
  display: flex;
  align-items: center;
  gap: 32px;
}

.socials__link {
  width: 32px;
  height: 32px;
}

.footer__nav-wrapper {
  display: flex;
  gap: 64px;
  max-width: 505.5px;
  width: 100%;
}

.footer__nav {
  width: 125.83px;
}

.footer__nav-title {
  font-weight: 500;
  font-size: 18px;
  color: #161414;
  margin-bottom: 20px;
}

.footer__nav-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer__nav-link {
  font-weight: 400;
  font-size: 13px;
  color: #5b5b5b;
}

.footer__nav-link:hover {
  color: #7B61FF;
}

.footer__subscribe {
  max-width: 388px;
  width: 100%;
}

.footer__subscribe-title {
  font-weight: 500;
  font-size: 18px;
  color: #161414;
  margin-bottom: 20px;
}

.subscribe {
  display: flex;
  gap: 16px;
  width: 100%;
  height: 72px;
  padding: 0;
  border-radius: 12px;
  background-color: inherit;
}

.subscribe__input-wrapper {
  position: relative;
}

.subscribe__input-wrapper img {
  position: absolute;
  top: 24px;
  left: 16px;
}

.subscribe__input {
  width: 300px;
  height: 72px;
  padding: 32px 20px 16px 56px;
  border-radius: 12px;
  background-color: #fff;
}

.subscribe__label {
  position: absolute;
  top: 28px;
  left: 56px;
  font-size: 14px;
  font-weight: 300;
  line-height: 16px;
  color: #5b5b5b;
  pointer-events: none;
  transition: all 0.2s ease-in;
}

/* При фокусе на элементе subscribe__input  или когда он заполнен и валиден все элементы subscribe__label одного уровня с этим элементом имеют  top: 16px; */
.subscribe__input:focus~.subscribe__label,
.subscribe__input:valid~.subscribe__label {
  top: 16px;
}

.subscribe__label--top {
  top: 16px;
}

/* Когда инпут заполнен но не валиден */
.subscribe__input:invalid~.subscribe__label {
  color: #ff0000;
}

/* Прописываем, чтобы при автозаполнении инпута не менялся цвет фона инпута */
.subscribe__input:-webkit-autofill,
.subscribe__input:-webkit-autofill:hover,
.subscribe__input:-webkit-autofill:focus,
.subscribe__input:-webkit-autofill:active {
  -webkit-text-fill-color: #000;
  /* change the color of the autofilled text */
  transition: background-color 5000s ease-in-out 0s;
  /* set a slow transition for background-color to avoid flickering */
  background-color: #fff;
  /* change the background color of the autofilled input */
}

.none {
  display: none;
}